home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / Clueless.swf / scripts / Database.as < prev    next >
Encoding:
Text File  |  2011-10-17  |  9.6 KB  |  282 lines

  1. package
  2. {
  3.    import flash.utils.Dictionary;
  4.    import flash.xml.*;
  5.    
  6.    public class Database
  7.    {
  8.       
  9.       protected static var _instance:Database = new Database();
  10.       
  11.       public static const DIE_ON_LOAD_FAIL:Boolean = false;
  12.       
  13.       internal static var MAXROWS:int = 3;
  14.        
  15.       
  16.       public var PartnerTable:Array;
  17.       
  18.       public var PartnerValues:Dictionary;
  19.       
  20.       public var Partners:Array;
  21.       
  22.       public var Levels:Array;
  23.       
  24.       public var Occasions:Array;
  25.       
  26.       public function Database()
  27.       {
  28.          var _loc1_:XMLDocument = null;
  29.          var _loc2_:XMLDocument = null;
  30.          var _loc3_:XMLDocument = null;
  31.          var _loc4_:int = 0;
  32.          var _loc5_:PartnerAttribute = null;
  33.          var _loc6_:XMLNode = null;
  34.          var _loc7_:XMLNode = null;
  35.          var _loc8_:XMLNode = null;
  36.          var _loc9_:DressupTheme = null;
  37.          var _loc10_:XMLNode = null;
  38.          var _loc11_:XMLNode = null;
  39.          var _loc12_:XMLNode = null;
  40.          var _loc13_:Partner = null;
  41.          var _loc14_:XMLNode = null;
  42.          var _loc15_:Level = null;
  43.          var _loc16_:XMLNode = null;
  44.          var _loc17_:XMLNode = null;
  45.          Partners = new Array();
  46.          Levels = new Array();
  47.          Occasions = new Array();
  48.          PartnerTable = new Array();
  49.          PartnerValues = new Dictionary();
  50.          super();
  51.          _loc1_ = MainDocument.Occasions.getDoc();
  52.          _loc2_ = MainDocument.Levels.getDoc();
  53.          _loc3_ = MainDocument.Partners.getDoc();
  54.          _loc4_ = 1;
  55.          for each(_loc6_ in _loc1_.firstChild.childNodes)
  56.          {
  57.             if(_loc6_.nodeType == XMLNodeType.ELEMENT_NODE)
  58.             {
  59.                (_loc9_ = new DressupTheme()).Title = _loc6_.attributes["name"].toString();
  60.                _loc9_.HintMessage = _loc6_.attributes["hint"].toString();
  61.                _loc9_.Description = _loc6_.attributes["description"].toString();
  62.                for each(_loc10_ in _loc6_.childNodes)
  63.                {
  64.                   if(_loc10_.nodeType == XMLNodeType.ELEMENT_NODE)
  65.                   {
  66.                      if(_loc10_.localName == "Attributes")
  67.                      {
  68.                         for each(_loc11_ in _loc10_.childNodes)
  69.                         {
  70.                            if(_loc11_.nodeType == XMLNodeType.ELEMENT_NODE)
  71.                            {
  72.                               if(_loc11_.attributes["name"] != "informal" && _loc11_.attributes["name"] != "formal")
  73.                               {
  74.                                  _loc9_.TargetAttributes.push(_loc11_.attributes["name"]);
  75.                               }
  76.                            }
  77.                         }
  78.                      }
  79.                      else if(_loc10_.localName == "Samples")
  80.                      {
  81.                         for each(_loc12_ in _loc10_.childNodes)
  82.                         {
  83.                            if(_loc12_.nodeType == XMLNodeType.ELEMENT_NODE)
  84.                            {
  85.                               _loc9_.SampleParts.push(_loc12_.attributes["name"]);
  86.                            }
  87.                         }
  88.                      }
  89.                   }
  90.                }
  91.                _loc9_.Background = _loc6_.attributes["background"].toString();
  92.                Occasions.push(_loc9_);
  93.             }
  94.          }
  95.          for each(_loc7_ in _loc3_.firstChild.childNodes)
  96.          {
  97.             if(_loc7_.nodeType == XMLNodeType.ELEMENT_NODE)
  98.             {
  99.                (_loc13_ = new Partner()).Name = _loc7_.attributes["name"];
  100.                _loc13_.HintText = _loc7_.attributes["hint"];
  101.                _loc13_.ImageName = _loc7_.attributes["image"];
  102.                _loc13_.TargetModel = _loc7_.attributes["targetmodel"];
  103.                _loc13_.TargetName = _loc7_.attributes["targetname"];
  104.                _loc13_.Index = _loc4_;
  105.                PartnerValues[_loc13_.Name] = [MAXROWS];
  106.                for each(_loc14_ in _loc7_.childNodes)
  107.                {
  108.                   if(_loc14_.nodeType == XMLNodeType.ELEMENT_NODE)
  109.                   {
  110.                      if(_loc14_.localName.toLowerCase() == "liketext")
  111.                      {
  112.                         _loc13_.addLikeText(_loc14_.attributes["text"] as String);
  113.                      }
  114.                      else
  115.                      {
  116.                         _loc13_.Attributes.push(_loc14_.attributes["name"]);
  117.                         _loc5_ = new PartnerAttribute(_loc14_.attributes["name"],_loc14_.attributes["column"],_loc14_.attributes["row"]);
  118.                         if(getPartIndex(_loc5_.Name) == null)
  119.                         {
  120.                            PartnerTable.push(_loc5_);
  121.                         }
  122.                         PartnerValues[_loc13_.Name][_loc5_.getRow] = _loc5_.getColumn;
  123.                      }
  124.                   }
  125.                }
  126.                Partners.push(_loc13_);
  127.                _loc4_++;
  128.             }
  129.          }
  130.          for each(_loc8_ in _loc2_.firstChild.childNodes)
  131.          {
  132.             if(_loc8_.nodeType == XMLNodeType.ELEMENT_NODE)
  133.             {
  134.                (_loc15_ = new Level()).Name = _loc8_.attributes["name"];
  135.                _loc15_.Rounds = parseInt(_loc8_.attributes["rounds"]);
  136.                _loc15_.Store = _loc8_.attributes["store"];
  137.                _loc15_.Next = _loc8_.attributes["next"];
  138.                _loc15_.Background = _loc8_.attributes["background"];
  139.                if(_loc8_.attributes["cutscene"] != undefined)
  140.                {
  141.                   _loc15_.Cutscene = _loc8_.attributes["cutscene"];
  142.                }
  143.                else
  144.                {
  145.                   _loc15_.Cutscene = "";
  146.                }
  147.                _loc15_.Occasions = new Array();
  148.                for each(_loc16_ in _loc8_.childNodes)
  149.                {
  150.                   if(_loc16_.nodeType == XMLNodeType.ELEMENT_NODE)
  151.                   {
  152.                      if(_loc16_.localName == "Occasions")
  153.                      {
  154.                         for each(_loc17_ in _loc16_.childNodes)
  155.                         {
  156.                            if(_loc17_.nodeType == XMLNodeType.ELEMENT_NODE)
  157.                            {
  158.                               _loc15_.Occasions.push(_loc17_.attributes["name"]);
  159.                            }
  160.                         }
  161.                      }
  162.                   }
  163.                }
  164.                Levels.push(_loc15_);
  165.             }
  166.          }
  167.       }
  168.       
  169.       public static function getInstance() : Database
  170.       {
  171.          if(_instance == null)
  172.          {
  173.             _instance = new Database();
  174.          }
  175.          return _instance;
  176.       }
  177.       
  178.       public function translateAttrib(param1:String) : String
  179.       {
  180.          switch(param1)
  181.          {
  182.             case "medium":
  183.                return "medium cut";
  184.             case "long":
  185.                return "long cut";
  186.             case "short":
  187.                return "short cut";
  188.             case "solid":
  189.                return "plain";
  190.             case "print":
  191.                return "printed";
  192.             case "bold":
  193.                return "bold colors";
  194.             case "pastel":
  195.                return "pastel colors";
  196.             default:
  197.                return param1;
  198.          }
  199.       }
  200.       
  201.       public function getPartIndex(param1:String) : PartnerAttribute
  202.       {
  203.          var _loc2_:PartnerAttribute = null;
  204.          for each(_loc2_ in PartnerTable)
  205.          {
  206.             if(_loc2_.Name == param1)
  207.             {
  208.                return _loc2_;
  209.             }
  210.          }
  211.          return null;
  212.       }
  213.       
  214.       public function getLevel(param1:String) : Level
  215.       {
  216.          var _loc2_:Level = null;
  217.          for each(_loc2_ in Levels)
  218.          {
  219.             if(_loc2_.Name == param1)
  220.             {
  221.                return _loc2_;
  222.             }
  223.          }
  224.          return null;
  225.       }
  226.       
  227.       public function getPartnerAttributes(param1:String) : String
  228.       {
  229.          var _loc2_:PartnerAttribute = null;
  230.          var _loc3_:String = null;
  231.          var _loc4_:String = null;
  232.          var _loc5_:* = undefined;
  233.          var _loc6_:* = undefined;
  234.          var _loc7_:int = 0;
  235.          _loc3_ = "";
  236.          _loc5_ = PartnerValues[param1][1];
  237.          _loc6_ = PartnerValues[param1][2];
  238.          _loc7_ = int(PartnerValues[param1][3]);
  239.          for each(_loc2_ in PartnerTable)
  240.          {
  241.             if(_loc2_.getColumn == _loc5_ && _loc2_.getRow == 1 || _loc2_.getColumn == _loc6_ && _loc2_.getRow == 2 || _loc2_.getColumn == _loc7_ && _loc2_.getRow == 3)
  242.             {
  243.                _loc4_ = translateAttrib(_loc2_.Name);
  244.                _loc3_ += "-  " + _loc4_.toUpperCase().charAt(0) + _loc4_.toLowerCase().substr(1) + "\n\n";
  245.             }
  246.          }
  247.          return _loc3_;
  248.       }
  249.       
  250.       public function getPartner(param1:String) : Partner
  251.       {
  252.          var _loc2_:Partner = null;
  253.          for each(_loc2_ in Partners)
  254.          {
  255.             if(_loc2_.Name == param1)
  256.             {
  257.                return _loc2_;
  258.             }
  259.          }
  260.          return null;
  261.       }
  262.       
  263.       public function getTheme(param1:String) : DressupTheme
  264.       {
  265.          var _loc2_:DressupTheme = null;
  266.          for each(_loc2_ in Occasions)
  267.          {
  268.             if(_loc2_.Title == param1)
  269.             {
  270.                return _loc2_;
  271.             }
  272.          }
  273.          return null;
  274.       }
  275.       
  276.       public function getPartnerValue(param1:String, param2:int) : int
  277.       {
  278.          return PartnerValues[param1][param2];
  279.       }
  280.    }
  281. }
  282.